package com.aishua.fire.mapper;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Component;

import com.aishua.fire.entity.addressBook.AddAddressBookInfo;
import com.aishua.fire.entity.addressBook.AddressBookInfo;
import com.aishua.fire.entity.addressBook.AddressBookListInfo;
import com.aishua.fire.entity.organization.AddOrganizationInfo;
import com.aishua.fire.entity.organization.OrganizationInfo;
import com.aishua.fire.jpa.entity.Account;

@Component
public interface AddressBookMapper
{
	/**
	 * 校验用户手机号是否重复
	 * @param phone
	 * @return
	 */
	List<String> findByUserPhone(String phone);
	
	/**
	 * 插入组织结构 部门信息
	 * @param info
	 */
	void saveAddressBook(AddAddressBookInfo info);
	
	/**
	 * 修改组织结构 部门信息
	 */
	void updateInfo(AddOrganizationInfo info);
	
	/**
	 * 删除组织结构 部门信息 （软删除）
	 */
	void updateStatuss(String id);

	/**
	 * 组织结构管理_查询组织结构图子部门信息
	 *
	 * @param id
	 * @return
	 */
	List<OrganizationInfo> selectOrgListByFid(String id);

	/**
	 * 组织结构管理_查询组织结构信息列表
	 */
	List<OrganizationInfo> select(Map<String, String> pa);

	/**
	 * 插入组织结构关联
	 * @param ma
	 */
	void insertOrgs(Map<String, String> ma);

	/**
	 * 查询通讯录列表
	 * @param param
	 * @return
	 */
	List<AddressBookInfo> addressBooklist(Map<String, String> param);

	/**
	 * 查询通讯录列表数量
	 * @param param
	 * @return
	 */
	int listTotal(Map<String, String> param);

	/**
	 * 根据通讯录ID及类型，查询对应的归属部门及职责组织
	 * @param pa
	 * @return
	 */
	List<String> getOrgList(Map<String, String> pa);

	/**
	 * 修改账户信息
	 * @param info
	 */
	void updateAddressBook(AddAddressBookInfo info);

	/**
	 * 删除现有关联关系
	 * @param id
	 */
	void removeAddressBookAndOrgan(String id);

	/**
	 * 根据手机号查询账户信息
	 * @param phone
	 * @return
	 */
	Account selectAccountByPhone(String phone);

	List<AddressBookListInfo> addressBookListInfo(Map<String, String> param);

	List<OrganizationInfo> getOrgListByAddList(Map<String, String> pa);

	/**
	 * 通讯录管理_删除通讯录信息
	 */
	void deleteAddressBookBean(String ids);

	/**
	 * 插入角色关联
	 * @param ma
	 */
    void insertRoles(Map<String, String> ma);

    /**
     * 添加账户表
     * @param acc
     */
    void insertAccount(Account acc);

    /**
     * 查询用户归属角色
     * @param pa
     * @return
     */
    String getOrganizationsStr(Map<String, String> pa);

    /**
     * 查询用户应急职责
     * @param id
     * @return
     */
    String getRolesStr(String o_id);
}
